/*
使用dll技术，对某些库（第三方库：jquery、react、vue...）进行单独打包
    当你运行 webpack 时，默认查找 webpack.config.js 配置文件
    需求：需要运行 webpack.dll.js 文件
    --> webpack --config webpack.dll.js
*/

const { resolve } = require('path');
const webpack = require('webpack');

module.exports = {
    entry: {
        // key是最终打包生成文件的name --> 生成jquery.js
        // ['jquery'] --> 要打包的类库名是jquery
        jquery: ['jquery'],
        vue: ['vue']
    },
    output: {
        filename: '[name].dll.js',
        path: resolve(__dirname, './build/dll'),
        library: '_dll_[name]_[hash]' // 打包的库里面向外暴露出去的内容叫什么名字
    },
    plugins: [
        // 打包生成一个 manifest.json --> 提供和jquery映射
        new webpack.DllPlugin({
            name: '_dll_[name]_[hash]', // 映射库的暴露的内容名称
            path: resolve(__dirname, './build/dll/[name].manifest.json') // 输出文件路径
        })
    ],
    mode: 'production'
};
